Field of the Invention
Embodiments of the present invention relate generally to a method and apparatus for rasterizing and encoding vector graphics.
Description of the Related Art
Traditionally, graphics processing units (GPUs) have been deployed in personal computers (PCs) or workstations with direct coupling to local display resources to render image sequences at high frame rates. More recently however, GPUs have been deployed as centralized resources in corporate data centers and cloud infrastructure separated from client terminals by local area network (LAN) or wide area network (WAN) topologies. An image frame sequences rendered by the GPU is encoded, communicated over the network to the client terminal where it is decoded and displayed. One challenge with such a configuration is that many LAN and WAN networks have insufficient capacity to communicate the image frame sequence at the original rendered frame rate and acceptable quality. Rather, the frame sequence is decimated by encoding resources coupled to the GPU. Unless the GPU is throttled to render at the same frame rate of the encoded image frame sequence, this becomes highly inefficient for both central processing unit (CPU) and GPU resources, a problem exacerbated by virtualization of GPU and CPU resources in which power utilization is paramount. Some systems regulate the frame rate at the GPU by throttling the v-sync signal which provides course frame rate control but does not distinguish based on the content within the image sequence. While modern raster image encoders themselves are enabled to regulate image quality and frame rate based on the spatial frequency characteristics of content or characteristics of image motion, they too do not distinguish content importance beyond cursor location or position on a 2D display. The problem of efficiency is further exacerbated by computer-aided design (CAD) application software which in some cases, indiscriminately reduces the level of detail (LOD) of a 3D scene under motion to sustain a high rendering rate but resultant shaded surface artifacts are inefficient to encode and negatively impact throughput.
In a related field, some networked graphics systems use a client-server architecture in which rendering is decomposed into server and client functions and techniques such as progressive mesh transmission are deployed to overcome network bandwidth limitations. Such systems require client GPU resources for rendering and composition which detracts from the benefits of centralizing graphics processing in the datacenter.
Therefore, there is a need in the art for centralized GPU systems enabled to render, encode and transmit graphics content under resource constraint based on content characteristics.